package cn.swust.designpatternlearningplatform.domain.entity;

import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 题目指标表（用于只智能组卷），此表添加数据用insert，修改数据用replace(TopicIndicators)实体类
 *
 * @author makejava
 * @since 2023-05-13 20:33:25
 */
@ToString
public class TopicIndicators implements Serializable {
    private static final long serialVersionUID = -42818204187964164L;

    private Integer id;

    private Integer topicId;
    /**
     * 难度系数，
     * 客观题：计算公式为（学生做错数）/（该题被做的总共的次数）。
     * 主观题：计算公式为（该题总分-学生平均分）/（该题的总分）。
     * 一个学生可以做多次，该结果保留4位小数
     */
    private BigDecimal degreeOfDifficulty;
    /**
     * 区分度，计算方式：先将一次测验中的学生做题数据，进行按该题分数排序，
     * 取前30%的学生，计算这部分学生在该题的平均得分，记为Sh（即为高分组），
     * 取后30%的学生，计算这部分学生在该题的平均得分，记为Sl（即为低分组），
     * 记该题的总分为W，
     * 最后按照公式（Sh-Sl）/W，保留4位小数
     */
    private BigDecimal discrimination;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getTopicId() {
        return topicId;
    }

    public void setTopicId(Integer topicId) {
        this.topicId = topicId;
    }

    public BigDecimal getDegreeOfDifficulty() {
        return degreeOfDifficulty;
    }

    public void setDegreeOfDifficulty(BigDecimal degreeOfDifficulty) {
        this.degreeOfDifficulty = degreeOfDifficulty;
    }

    public BigDecimal getDiscrimination() {
        return discrimination;
    }

    public void setDiscrimination(BigDecimal discrimination) {
        this.discrimination = discrimination;
    }

}

